#pragma once

namespace LSH
{
namespace Graphics
{

class Render
{
public:
    BOOL    initialize(HWND hwnd, BOOL windowed, UINT width, UINT height, UINT depth);
    void    shutdown(); 
public:
    inline IDirect3D9*         getD3D() { return _pD3d; };
    inline IDirect3DDevice9*   getD3DDevice() { return _pD3dDevice; };

protected:
    HWND    _hwnd;

    BOOL	_windowed;
    UINT	_width;
    UINT	_height;
    UINT	_depth;

    IDirect3D9*         _pD3d;                      
    IDirect3DDevice9*	_pD3dDevice;

    D3DCAPS9			    _deviceCaps;
    D3DPRESENT_PARAMETERS	_devicePresentParam;

    DESCLARE_SINGLETON(Render)
};

}
} // LSH
